package com.tamecode.chapter05.part11.sub2;

import com.tamecode.chapter05.part11.sub1.AppConfig;
import com.tamecode.chapter05.part11.sub1.LogonService;
import com.tamecode.chapter05.part11.sub1.ServiceConfig;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

/**
 * @Author: Liqc
 * @Date: 2022/12/21 13:22
 */
public class JavaConfigTest {

    public static void main(String[] args) {
        // 1. 使用 @Configuration 类提供的Bean定义信息启动容器，单个配置类启动方式
        // ApplicationContext ctx = new AnnotationConfigApplicationContext(AppConfig.class);

        // 1. 注册多个 @Configuration 配置类
        AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
        // 可以一个个配置 @Configuration 配置类，也可以加载一个，把其它的用 @Import 导入到一个配置类中
        ctx.register(AppConfig.class);
        ctx.register(ServiceConfig.class);
        // 2. 刷新容器以应用这些注册的配置类
        ctx.refresh();

        LogonService logonService = ctx.getBean(LogonService.class);
        logonService.printHello();
    }

}
